// 学生信息提交 查询 更新 删除
// 创建路由器
/* 
① 引入express模块
② 在express.Router()中创建路由器
③暴露出来
④在入口文件中引入路由器模块
⑤应用路由 app.use()
*/
// 创建路由

// 从前台收集数据 → 数据到服务器 → 服务器中将数据提交给数据库
/* 
①连接数据库
②创建约束条件  引入mongoose 创建schema对象 创建约束对象 创建模型对象 并将其暴露出来
③往数据库中存储数据create
  将模型对象引入
*/


const express = require('express');
// 引入模型对象
const Stu_infos = require('../models/stu_infos');
// 创建路由器
const router = new express.Router();
/* 
提交 查询 更新 删除 分析这四种是get post 请求
post  向服务器提交数据
get 向服务器请求数据 

提交： post
查询：get
更新：post 
删除：get 

*/
// 提交数据
router.post('/stu_info',async(req,res)=>{
    const stu_info = req.body;
   /*  console.log(stu_info);
    // 服务器得到学生的信息
    const result = await Stu_infos.create(stu_info);
    console.log(result);
    // 往数据库中存储数据 */


    /* 学号是唯一值 当浏览器提交过来数据时，看数据库中有没有该学号，有返回 该学号已存在，请重新输入学号 如果没有 直接存入即可 */

    // 从前台获取个人信息
    // 去数据库中查看是否有该学号
    let stu_id = stu_info.stu_id;
    let result = await Stu_infos.findOne({stu_id:stu_id});
    console.log(result);
    if(result){
        res.send('请重新输入，该学号已存在');
    }else{
        const result = await Stu_infos.create(stu_info);
        console.log(result);
        res.send('数据提交成功！！')
    }
})
// 查询
/* router.get('/search',async(req,res)=>{
    // 前台发送请求→服务器接收传递过来的数据 学号→ 根据学号去数据库中进行查询
    // get请求有query传参 params传参
    console.log(req.query);
    const result = await Stu_infos.findOne(req.query);
    res.send(result);
}) */
router.get('/search/:stu_id',async(req,res)=>{
    const result = await Stu_infos.findOne(req.params);
    res.send(result);
})
/* 
get请求在浏览器的路径中就可以测试
post 


*/
// 更新
router.post('/update_stu_info',async(req,res)=>{
    // 从浏览器获取新的数据→在服务器得到新数据req.body→在数据库中进行更新  updateOne
    console.log(req.body);
    const result = await Stu_infos.updateOne({stu_id:req.body.stu_id},{$set:{name:req.body.name}})
    console.log(result);
    res.send('修改数据');
})
// 删除
router.get('/delete_stu_info',async(req,res)=>{
    // 从浏览器中获取学号→服务器req.query获取到学号→执行数据库删除语句  
    // 需求是把学号为02的学生删除
    console.log(req.query);
    const result = await Stu_infos.deleteOne(req.query);
    console.log(result);
    res.send('删除指定学生');
})
module.exports = router;